/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package model;

import java.util.Date;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Season</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link model.Season#getGroupOfEpisodes <em>Group Of Episodes</em>}</li>
 *   <li>{@link model.Season#getSeasonPackSeason <em>Season Pack Season</em>}</li>
 *   <li>{@link model.Season#getPremier <em>Premier</em>}</li>
 *   <li>{@link model.Season#getEnds <em>Ends</em>}</li>
 * </ul>
 * </p>
 *
 * @see model.ModelPackage#getSeason()
 * @model
 * @generated
 */
public interface Season extends EntityDescription {
	/**
	 * Returns the value of the '<em><b>Group Of Episodes</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Group Of Episodes</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Group Of Episodes</em>' containment reference.
	 * @see #setGroupOfEpisodes(EpisodesPackage)
	 * @see model.ModelPackage#getSeason_GroupOfEpisodes()
	 * @model containment="true" required="true"
	 * @generated
	 */
	EpisodesPackage getGroupOfEpisodes();

	/**
	 * Sets the value of the '{@link model.Season#getGroupOfEpisodes <em>Group Of Episodes</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Group Of Episodes</em>' containment reference.
	 * @see #getGroupOfEpisodes()
	 * @generated
	 */
	void setGroupOfEpisodes(EpisodesPackage value);

	/**
	 * Returns the value of the '<em><b>Season Pack Season</b></em>' reference.
	 * It is bidirectional and its opposite is '{@link model.SeasonsPackSeason#getSeason <em>Season</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Season Pack Season</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Season Pack Season</em>' reference.
	 * @see #setSeasonPackSeason(SeasonsPackSeason)
	 * @see model.ModelPackage#getSeason_SeasonPackSeason()
	 * @see model.SeasonsPackSeason#getSeason
	 * @model opposite="season" required="true"
	 * @generated
	 */
	SeasonsPackSeason getSeasonPackSeason();

	/**
	 * Sets the value of the '{@link model.Season#getSeasonPackSeason <em>Season Pack Season</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Season Pack Season</em>' reference.
	 * @see #getSeasonPackSeason()
	 * @generated
	 */
	void setSeasonPackSeason(SeasonsPackSeason value);

	/**
	 * Returns the value of the '<em><b>Premier</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Premier</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Premier</em>' attribute.
	 * @see #setPremier(Date)
	 * @see model.ModelPackage#getSeason_Premier()
	 * @model
	 * @generated
	 */
	Date getPremier();

	/**
	 * Sets the value of the '{@link model.Season#getPremier <em>Premier</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Premier</em>' attribute.
	 * @see #getPremier()
	 * @generated
	 */
	void setPremier(Date value);

	/**
	 * Returns the value of the '<em><b>Ends</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Ends</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Ends</em>' attribute.
	 * @see #setEnds(Date)
	 * @see model.ModelPackage#getSeason_Ends()
	 * @model
	 * @generated
	 */
	Date getEnds();

	/**
	 * Sets the value of the '{@link model.Season#getEnds <em>Ends</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Ends</em>' attribute.
	 * @see #getEnds()
	 * @generated
	 */
	void setEnds(Date value);

} // Season
